package com.yunhe.option.repository.data;

import com.yunhe.option.domain.data.Price;
import com.yunhe.option.domain.data.pk.PricePK;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

/**
 * 价格数据仓库
 * @desc 价格数据仓库定义
 * @author liuronglei
 */
@Repository
public interface PriceRepository extends JpaRepository<Price, PricePK> {
    /**
     * 通过地区和类型删除价格
     * @param areaCode 地区代码
     * @param typeCode 类型代码
     */
    Long deletePriceByAreaCodeAndTypeCode(Long areaCode, Long typeCode);

    /**
     * 查询全部价格对象
     * @param spec 查询条件
     * @param pageable 分页对象
     */
    Page<Price> findAll(Specification<Price> spec, Pageable pageable);

    /**
     * 查询全部价格对象
     * @param spec 查询条件
     * @param sort 排序对象
     */
    Iterable<Price> findAll(Specification<Price> spec, Sort sort);

    /**
     * 查询全部价格对象
     * @param spec 查询条件
     */
    Iterable<Price> findAll(Specification<Price> spec);
}
